package oj;

public class LC201 {
    public int rangeBitwiseAnd(int left, int right) {
        int shift=0;
        //循环使left==right,即是寻找公共前缀
        //left:5 101 right:7 111
        //left=1 right=1 shift=2 公共前缀是1 不同的位数是两位
        while(left<right){
            left>>=1;
            right>>=1;
            //记录不同的位数
            shift++;
        }

        //最终的公共前缀再给那些不同的位补0
        //1<<2
        return left<<shift;
    }
}
